using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ScreenEffectsMgr")]
	public class ScreenEffectsMgr : MonoBehaviour
	{
		public enum EFFECT_TYPE
		{
			Glow,
			Distortion
		}

		public Camera m_EffectsObjectsCamera => method_3<Camera>("m_EffectsObjectsCamera");

		public GameObject m_EffectsObjectsCameraGO => method_3<GameObject>("m_EffectsObjectsCameraGO");

		public Camera m_MainCamera => method_3<Camera>("m_MainCamera");

		public ScreenEffectsRender m_ScreenEffectsRender => method_3<ScreenEffectsRender>("m_ScreenEffectsRender");

		public static ScreenEffectsMgr s_Instance => MonoClass.smethod_7<ScreenEffectsMgr>(TritonHs.MainAssemblyPath, "", "ScreenEffectsMgr", "s_Instance");

		public static List<ScreenEffect> m_ActiveScreenEffects => MonoClass.smethod_7<Class271<ScreenEffect>>(TritonHs.MainAssemblyPath, "", "ScreenEffectsMgr", "m_ActiveScreenEffects")?.method_25();

		public ScreenEffectsMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ScreenEffectsMgr(IntPtr address)
			: this(address, "ScreenEffectsMgr")
		{
		}

		public static ScreenEffectsMgr Get()
		{
			return MonoClass.smethod_15<ScreenEffectsMgr>(TritonHs.MainAssemblyPath, "", "ScreenEffectsMgr", "Get", Array.Empty<object>());
		}

		public static void RegisterScreenEffect(ScreenEffect effect)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "ScreenEffectsMgr", "RegisterScreenEffect", effect);
		}

		public static void UnRegisterScreenEffect(ScreenEffect effect)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "ScreenEffectsMgr", "UnRegisterScreenEffect", effect);
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Update()
		{
			method_8("Update");
		}

		public void OnDisable()
		{
			method_8("OnDisable");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void OnEnable()
		{
			method_8("OnEnable");
		}

		public int GetActiveScreenEffectsCount()
		{
			return method_11<int>("GetActiveScreenEffectsCount", Array.Empty<object>());
		}

		public void Init()
		{
			method_8("Init");
		}

		public void UpdateCameraTransform()
		{
			method_8("UpdateCameraTransform");
		}

		public void CreateBackPlane(Camera camera)
		{
			method_8("CreateBackPlane", camera);
		}
	}
}
